package interfaces.model;

/***
 * The cell contains information about the state as well as its position on the board. 
 * setState(state) is used to manually change the state of the cell, and Act() makes the
 * cell update its current state based on the CellAI. 
 * 
 * @author thwhyte
 *
 */
public interface Cell {
	/**
	 * Sets the state of the cell. This is public in case clients want to
	 * allow user interaction with the cell states.
	 * @param state : the desired next state of the cell
	 */
	public void setState(String state);
	/**
	 * Returns the state of the cell
	 * @return : the cell state (String)
	 */
	public String getState();
	/**
	 * Invokes the CellAI in order to determine the next state of the cell.
	 */
	public void Act();
}

